canon/registries/T0_Worldstate_Variables [ACTIVE v0.1]/Sheet1.csv
48 rows
| variable_id | variable_name | type | domain | default | consumers | canonical_authority | schema_version_introduced | notes | extensions | |
|---|---|---|---|---|---|---|---|---|---|---|
| WS_001 | integrity_score | integer | -100 to +100 | 0.0 | UE5_save_state, voice_generation_layer, appearance_renderer, dialogue_resolver, recharge_source_responder, NPC_recognition_system | T1_Integrity_Paths_Worldstates_Master §2.1 | 1.0.0 | Continuous integrity signal driving all integrity-coupled systems | {} | |
| WS_002 | integrity_level | enum | L1_TRULY_GOOD, L2_GOOD_ENOUGH, L3_DRIFTING, L4_EVIL, L5_PURE_EVIL_TERMINAL | L3_DRIFTING | world_state_resolver, region_page_section_19, NPC_dialogue_dispatcher | T1_Integrity_Paths_Worldstates_Master §3.2 | 1.0.0 | Derived from integrity_score per band mapping; runtime read | {} | |
| WS_003 | world_state_current | enum | WS1_LUMINOUS, WS2_RESTORED, WS3_NEUTRAL, WS4_DAMAGED, WS5_CORRUPTED | WS3_NEUTRAL | UE5_environmental_renderer, Music_world_state_stem_selector, region_page_section_19_dispatch | T1_Integrity_Paths_Worldstates_Master §4.1 | 1.0.0 | 1:1 map to integrity_level | {} | |
| WS_004 | path_bucket | enum | TRULY_GOOD, GOOD_ENOUGH, EVIL, UNLOCKED, ALL | UNLOCKED | convergence_node_dispatcher, three_ending_dispatcher, Ch66_77_quest_resolver, Ch76_two_courts_phase_1_resolver, Ch76_father_encounter_dispatcher, Ch77_epilogue_dispatcher | T1_Integrity_Paths_Worldstates_Master §3.3 | 1.0.0 | UNLOCKED pre-Ch65; commits to one of three buckets at Ch65 path lock-in convergence node | {} | |
| WS_005 | path_lock_in_state | enum | UNLOCKED, LOCKED | UNLOCKED | Ch65_convergence_node, Ch66_77_quest_resolver | T1_Integrity_Paths_Worldstates_Master §3.4 | 1.0.0 | Flips to LOCKED at Ch 65 pre-fairy-realm gathering convergence node | {} | |
| WS_006 | appearance_score | integer | -100 to +100 | 0.0 | UE5_appearance_renderer, voice_generation_layer, NPC_recognition_system | T1_Integrity_Paths_Worldstates_Master §2.3, §7 | 1.0.0 | Coupled to integrity_score plus direct appearance-affecting choices | {} | |
| WS_007 | age_stage | enum | CHILDHOOD, ADOLESCENCE, ADULTHOOD | CHILDHOOD | UE5_appearance_renderer, voice_generation_layer, dialogue_resolver | T1_Integrity_Paths_Worldstates_Master §2.3 | 1.0.0 | Per Ch 1 selection plus arc-progression aging; canonical from CVD §10 | {} | |
| WS_008 | relationship_history | object | per-NPC ledger object with bond_state (shared nine-band relational ladder integer -100..+100 per T1_Integrity_Paths_Worldstates_Master §8.11; bands -100..-90|-89..-70|-69..-40|-39..-10|-9..+9|+10..+39|+40..+69|+70..+89|+90..+100; NPC display aliases off attackability_tier - no third label list per D | {} | dialogue_resolver, six_option_dispatcher, NPC_recognition_system, familiar_bond_renderer | T1_Integrity_Paths_Worldstates_Master §2.3, §8.11 | 1.0.0 | Per-NPC accumulating ledger; familiar bond state and healer's child relationship state are the highest-priority entries; bond_state banded per §8.11 (D-REL-BANDS 2026-07-16); NPC bond_state is unwritten in the executed spine to date - do not confuse with the heavily-written WS_012 familiar axis | {} | |
| WS_009 | journal_status | enum | NOT_BEGUN, ACTIVE_HEALERS_CHILD, TRANSFERRED_TO_PROTAGONIST, DECISION_TO_PUBLISH, PUBLIC_TRULY_GOOD, PUBLIC_HEDGED_GOOD_ENOUGH, SUPPRESSED, NEVER_COMPLETED, SHARED_POST_CH58 | NOT_BEGUN | journal_renderer, region_page_section_19, Ch59_65_continental_revisit_dispatcher, Ch77_epilogue_renderer | T1_Integrity_Paths_Worldstates_Master §8.4 | 1.0.0 | State machine driven by Ch 13, Ch 38, Ch 56, Ch 57, Ch 58 anchor events plus integrity-coupling. D-1 observed-enum pin (2026-07-19, executed spine): all nine in-domain values are attested in use (NOT_BEGUN as default; ACTIVE_HEALERS_CHILD, TRANSFERRED_TO_PROTAGONIST, DECISION_TO_PUBLISH, PUBLIC_TRUL | {} | |
| WS_010 | journal_entries_unlocked | array | array of journal_entry_id strings | [] | journal_renderer, save_state_system | T1_Integrity_Paths_Worldstates_Master §8.4, Pipeline Contracts §1.9 | 1.0.0 | Per Pipeline Contracts §1.9 Journal Mechanic Canonical Authority — per-entry unlock tracking | {} | |
| WS_011 | journal_voice_texture | enum | RICH_WARM, MIDDLE_REGISTER, SPARSE_COLD, DIMINISHING | MIDDLE_REGISTER | journal_renderer, ElevenLabs_journal_voice_dispatcher | T1_Integrity_Paths_Worldstates_Master §8.5 | 1.0.0 | Path-variable per CVD §17.9 Pillar 6 canonical; texture register driving entry generation voice | {} | |
| WS_012 | familiar_bond_state | object | object with familiar_id, bond_tier (the corpus-attested familiar bond-quest ladder: approach | accepted | mastery, with qualitative per-familiar bond-event writes), last_interaction_chapter, bond_quality enum (the §9.5 Ch-58 reunion outcome record: realized | footprints | trace_only) | {} | familiar_renderer, Ch58_reunion_dispatcher, dialogue_resolver | T1_Integrity_Paths_Worldstates_Master §9.5 | 1.0.0 | Drives Ch 58 reunion path-branching (TGP realized, GE footprints, Evil trace-only); SEPARATE axis from the §8.11 shared relational ladder - the join question is deliberately OPEN and needs its own ruling (the Ch 58 reunion branches off path buckets not tiers; D-REL-BANDS brief §9); 99 writes across | {} | |
| WS_013 | cassius_velheim_state | enum | NOT_ENCOUNTERED, ENCOUNTERED_PHASE_1, ENCOUNTERED_PHASE_2, RESOLVED_TGP_PURGE, RETREATED_GE, VICTORY_EVIL | NOT_ENCOUNTERED | Ch76_two_courts_phase_1_resolver, sequel_seed_tracker, three_ending_dispatcher | T1_Integrity_Paths_Worldstates_Master §9.2-9.4, §10.2 | 1.0.0 | Per CVD §17.7 antagonist family identity discipline; tracks Ch 76 (Two Courts Phase 1 | Cassius) outcome | {} |
| WS_014 | maatherion_negotiation_outcome | enum | NOT_ENCOUNTERED, REFUSED, ACCEPTED | NOT_ENCOUNTERED | Ch69_resolver, three_ending_dispatcher, Ch74_75_dispatcher | T1_Integrity_Paths_Worldstates_Master §9.2-9.4 | 1.0.0 | Architect's Final Negotiation outcome per Ch 69 canonical | {} | |
| WS_015 | atlantis_passage_decision | enum | NOT_ENCOUNTERED, FULL_ENCOUNTER_TGP, LIMITED_GE, WEAPONIZED_FRAGMENTS_EVIL | NOT_ENCOUNTERED | Ch66_resolver, vimana_5th_mode_dispatcher, Ch74_difficulty_modifier | T1_Integrity_Paths_Worldstates_Master §5.4 Ch 66, §9.2-9.4 | 1.0.0 | Ch 66 Atlantis passage-decision per Drive folder canon (Ch 66 = Atlantis, Ch 64 = Underwater Sites Doggerland) | {} | |
| WS_016 | vimana_5th_mode_access | enum | UNAVAILABLE, FULL_ACCESS_TGP, PARTIAL_GE, FRAGMENT_RESIDUE_EVIL | UNAVAILABLE | UE5_vimana_dispatcher, Ch66_77_arc_resolver | T1_Integrity_Paths_Worldstates_Master §9.2 Ch 66 | 1.0.0 | Vimana fifth operational mode dimensional-space access per T1_Vril Vimana spec | {} | |
| WS_017 | father_encounter_variant | enum | NOT_ENCOUNTERED, REUNION_TGP, NEGOTIATION_GE, COMBAT_EVIL | NOT_ENCOUNTERED | Ch76_two_courts_phase_2_resolver, three_ending_dispatcher, Ch76_77_cinematic_dispatcher | T1_Integrity_Paths_Worldstates_Master §5.4 Ch 76, §9.2-9.4 | 1.0.0 | Three entirely-distinct path encounters per CVD §17.4 canonical | {} | |
| WS_018 | six_option_cumulative_record | object | object with per-chapter array of selected option enums (TRULY_GOOD, TRULY_BAD, SYMPATHETIC, DETACHED, CURIOUS, DEFIANT) | {} | Ch75_dialogue_dispatcher, Ch76_77_ending_cutscene_specific_content_resolver | T1_Integrity_Paths_Worldstates_Master §6.6 | 1.0.0 | Per CVD §13 voice system; cumulative selections drive Ch 75 maximum-weight deployment determining Ch 76-77 ending cutscene specifics on TGP and GE paths | {} | |
| WS_019 | community_state_per_region | object | per-region object with community_id, recovery_state enum, last_protagonist_visit_chapter, accumulated_integrity_signal | {} | region_page_section_19_dispatcher, Ch59_65_revisit_renderer, NPC_dialogue_dispatcher | T1_Integrity_Paths_Worldstates_Master §8.3 | 1.0.0 | Cross-chapter accumulation tracking per §4.9 and §8.3. RATIFIED as the mark_write home (D-COMBAT-TD R8, Josh 2026-07-19): mark_write {community_id, valence, persistence} maps onto this row's per-region fields (community_id; accumulated_integrity_signal = valence; recovery_state = persistence); forwa | {} | |
| WS_020 | antagonist_operational_state_per_region | object | per-region object with operation_id, intact_or_exposed enum, manifestation_type | {} | region_page_section_11_dispatcher, T4_House_of_Velheim_canonical_consumer | T1_Integrity_Paths_Worldstates_Master §8.1, §8.2 | 1.0.0 | Per T4_House_of_Velheim_Canonical operational manifestation spec; tracks per-region intactness across the arc | {} | |
| WS_021 | faction_standing_per_faction | object | per-faction object with faction_id, standing_value (-100 to +100), last_interaction_chapter | {} | T0_Faction_Registry.faction_id (the key domain); T0_Standing_Event_Grammar (the write vocabulary, both signs); T0_Standing_Reward_Band (the read side); T0_Reputation_Ladder_Registry.faction_ref (per-faction thresholds); docs/FACTION_STANDING_WIRING_SPEC.md (the slice writer roster) | T1_Integrity_Paths_Worldstates_Master §8.7 | 1.0.0 | Distinct from integrity but interacts at NPC reaction layer per §8.7 | {} | |
| WS_022 | convergence_node_state | object | per-convergence-node object with node_id, path_state_at_node, lock_committed boolean | {} | convergence_node_dispatcher, scene_assembly_path_branching_resolver | T1_Integrity_Paths_Worldstates_Master §3.5, Pipeline Contracts §5.2 | 1.0.0 | Convergence nodes prevent infinite branching by collapsing 5 levels to 3 buckets at canonical anchor points; primary node Ch 65 | {} | |
| WS_023 | vril_polarity_signature | float | -1.0 to +1.0 | 0.0 | T1_Vril_substrate_layer, recharge_source_responder, NPC_recognition_system | T1_Integrity_Paths_Worldstates_Master §2.1, T1_Vril §1 | 1.0.0 | Coupled to integrity_score per T1_Vril §1; substrate-layer reading of integrity signal | {} | |
| WS_024 | atmospheric_vril_density_modifier | float | 0.0 to 2.0 multiplier on regional baseline | 1.0 | T1_Vril_atmospheric_density_resolver, region_page_section_11_consumer, Music_world_state_stem_selector | T1_Integrity_Paths_Worldstates_Master §4.2-4.6, T1_Vril §10.6 | 1.0.0 | Per-region atmospheric vril density modifier coupled to world_state_current; T1_Vril §10.6 owns the physics | {} | |
| WS_025 | identity_hiding_status | enum | FIRST_CONCEALMENT, ACTIVE_CONCEALMENT, NEAR_REVEAL, REVEAL_RECOVERY, CONCEALMENT_WITH_RECOGNIZED_ALLY, CONCEALMENT_WITH_HOSTILE_RECOGNITION | FIRST_CONCEALMENT | dialogue_resolver, NPC_recognition_system, Ch59_65_continental_revisit_dispatcher | T1_Story_Spine v2.2 patch | 1.0.0 | Per Pipeline Contracts §9 Story Spine spec; cumulative recognition-state tracking | {} | |
| WS_026 | reputation_biography_propagation | object | per-entity ledger object with entity_id, entity_type (quest, NPC, region_marker), path_and_integrity_variant fields, propagation_scope_mode (CONCEALMENT_WITH_RECOGNIZED_ALLY, CONCEALMENT_WITH_HOSTILE_RECOGNITION, OPEN_PRESENCE) | {} | NPC_dialogue_dispatcher, region_page_section_19_dispatcher, T4_House_of_Velheim_antagonist_intelligence_record_consumer | T99_Story_Spine_Build_Logic Appendix B Entry 21 (v2.3 Living Revision Log Entry 21 substrate); T1_Integrity_Paths_Worldstates_Master §8 adjacent | 1.0.0 | Existence-registration marker per SSBL Appendix B Entry 21; schema-field writes per chapter action carry path-and-integrity-variant fields across quests plus NPCs plus regions/markers; concealment-mode-aware writes scoped per applicable network — CONCEALMENT_WITH_RECOGNIZED_ALLY to ally network, CON | {} | |
| WS_027 | companion_roster_state | object | per-companion roster object with character_id (soft-FK T0_Character_Index.character_id), loyalty_model, loyalty_state, loyalty_score (-100..+100 on the §8.11 shared nine-band ladder; THE BOND labels: Enemy|Severed|Wary|Cooled|Stranger|Known|Warm|Trusted|Family), loyalty_belief_axis, loyalty_departur | {} | party_manager, dialogue_resolver, no_dead_end_pathing_resolver, region_page_section_19_dispatcher, six_option_dispatcher | T1_Integrity_Paths_Worldstates_Master §8.11 | 1.1.0 | Live traveling-party ledger; membership + per-member loyalty SEEDED from T0_Character_Index loyalty_* anchor columns; integrity (WS_001/WS_002) crossing a member's effective trigger drives departure and band alignment >=60 drives drawn_conditional joins; effective trigger = threshold + loyalty_score | {} | |
| WS_028 | companion_loyalty_transition_events | object | queued transition-events object with character_id, event (DRAWN | WAVERING | DEPARTED | REBONDED), chapter, integrity_at_event, rerouted_paths[] | {} | party_manager, no_dead_end_pathing_resolver, quest_availability_resolver | T1_Integrity_Paths_Worldstates_Master §8.11 | 1.1.0 | Fires when integrity crosses a member's effective trigger (capped 90) or aligns >=60 with a drawn_conditional belief_axis (the DRAWN mirror); WAVERING fires at effective trigger -15, the visible warning window that makes this enum computable (§8.11.2); a departure must sustain across two chapter nod | {} | |
| WS_029 | trade_sovereignty_valence | object | base-building runtime state | base-building | docs/proposals/systems/base-building.md | v0.2 | WS7 systems-wiring anchor (DRAFT) | {} | ||
| WS_030 | hearthway_network_state | object | base-building runtime state | base-building | docs/proposals/systems/base-building.md | v0.2 | WS7 systems-wiring anchor (DRAFT) | {} | ||
| WS_031 | dwelling_home_ledger | object | base-building runtime state | base-building | docs/proposals/systems/base-building.md | v0.2 | WS7 systems-wiring anchor (DRAFT) | {} | ||
| WS_032 | reputation_tier_per_faction | object | reputation-nemesis runtime state | T0_Reputation_Ladder_Registry.band_reward_ref -> T0_Standing_Reward_Band.reward_band_id (the nine ruled bands); docs/FACTION_STANDING_WIRING_SPEC.md Section 5 | docs/proposals/systems/reputation-prestige-nemesis.md | v0.2 | WS7 systems-wiring anchor (DRAFT) | {} | ||
| WS_033 | prestige_tier | integer | reputation-nemesis runtime state | 0 | reputation-nemesis | docs/proposals/systems/reputation-prestige-nemesis.md | v0.2 | WS7 systems-wiring anchor (DRAFT) | {} | |
| WS_034 | nemesis_memory_per_boss | object | reputation-nemesis runtime state | reputation-nemesis | docs/proposals/systems/reputation-prestige-nemesis.md | v0.2 | WS7 systems-wiring anchor (DRAFT) | {} | ||
| WS_035 | spellcraft_authored_spells | object | combat-spellcraft runtime state incl. the discovered_merges[] sub-field — append-only merge-discovery records (custom-forge merges found in play per T1_Ability_Tree §14A.2; the mint's m6 homing) | combat-spellcraft | docs/proposals/systems/combat-and-spellcraft.md | v0.2 | WS7 systems-wiring anchor (DRAFT) | {} | ||
| WS_036 | worn_rune_loadout | object | combat-spellcraft runtime state | combat-spellcraft | docs/proposals/systems/combat-and-spellcraft.md | v0.2 | WS7 systems-wiring anchor (DRAFT) | {} | ||
| WS_037 | husbandry_menagerie_state | object | creature-husbandry runtime state | creature-husbandry | docs/proposals/systems/attackability-and-consequence-model.md | v0.2 | WS7 systems-wiring anchor (DRAFT) | {} | ||
| WS_038 | husbandry_extinction_flag | enum | creature-husbandry runtime state | creature-husbandry | docs/proposals/systems/attackability-and-consequence-model.md | v0.2 | WS7 systems-wiring anchor (DRAFT) | {} | ||
| WS_039 | hollow_containment_fork_last | enum | creature-husbandry runtime state | creature-husbandry | docs/proposals/systems/attackability-and-consequence-model.md | v0.2 | WS7 systems-wiring anchor (DRAFT) | {} | ||
| WS_040 | ntala_inversion_state | enum | UNSET, STANDING_WITNESS, SILENCED | UNSET | path_dispatch_resolver (FORK_CH75_D), epilogue_frame_renderer (CHEPI_B03 custody colouring) | T1_Integrity_Paths_Worldstates_Master §8.11.3; docs/spine/CH_75.md FORK_CH75_D | 1.2.0 | Written ONCE at FORK_CH75_D (CH75_B13, EVIL band only) — SPARE writes STANDING_WITNESS (co-authorship severed, she keeps the record from outside), KILL writes SILENCED (the record-keeper falls, the journal partial-and-cold surviving physically, orphaned never erased); UNSET on the TRULY_GOOD/GOOD_EN | {} | |
| WS_041 | composure_node_mastery | object | per-boss/per-mode object of Composure sub-nodes the player has mastered across attempts (a banked knowledge/skill credit, NOT the live in-fight Composure bar) | {} | boss_encounter_builder, death_learning_resolver, no_dead_end_pathing_resolver | docs/translation/T99_Translation_Combat.md §7 Step 7; T1_Combat_System_Spec | 1.3.0 | Banked knowledge economy (the no-XP-on-death loop, T99 §2.5). FIREWALL: the LIVE in-fight Composure bar and the resultant difficulty float d_local get NO Worldstate keys -- they are per-encounter transient GAS/StateTree state, never persisted (T99 §3, §5); only this banked mastery credit and WS_042 | {} | |
| WS_042 | banked_tell_reads | object | per-boss/per-signature object of telegraph tell-reads the player has banked across attempts (the death-as-knowledge economy, never an XP handout) | {} | death_learning_resolver, boss_encounter_builder | docs/translation/T99_Translation_Combat.md §2.5 and §7 Step 7; T1_Combat_System_Spec | 1.3.0 | Banked on death per the Hades no-dead-end loop (T99 §2.5). FIREWALL: live Composure + d_local get NO Worldstate keys (transient per-encounter state, T99 §3/§5); only this banked read-credit and WS_041 composure_node_mastery persist. Provenance D-COMBAT-TD R8 (Josh 2026-07-19), docs/spine/DECISIONS_P | {} | |
| WS_043 | bonus_selection_state | object | per-capability selection-state object keyed on capability_kind, capability_ref (soft-FK resolved per-kind by the T0_Bonus_Pool_Registry capability_kind map), tier_key, lane, loadout_set_id (soft-FK T0_Loadout_Set_Definition.set_id) — each key holding option_id (soft-FK T0_Bonus_Option_Registry.optio | {} | UE5_save_state, loadout_ui (via WS_045 set rows), build_space_sweep (reachability classing), bonus_pick_resolver | T1_Ability_Tree §5I.1; T1_Combat_System_Spec §14; T1_Integrity_Paths §8.11.7 (the WS_027/WS_012 precedent); docs/COMBAT_PROGRAM_ADDENDUM.md §§9-10 | 1.4.0 | Selection state is per-player RUNTIME state, not canon — it rides the worldstate layer on the §8.11.7 precedent (WS_027 companion roster, WS_012 familiar bond) rather than becoming a T0 registry. KEYED REPLACE, not append-legal: a re-selection overwrites the key and the history lives on WS_044. load | {} | |
| WS_044 | bonus_respec_ledger | object | append-only respec ledger; each entry carries event_id, respec_kind (bonus | mastery_point | device_bonding), pool_id (soft-FK T0_Bonus_Pool_Registry.pool_id), from_option_id and to_option_id (soft-FK T0_Bonus_Option_Registry.option_id), cost_paid_ref (soft-FK T0_Balance_Constant_Registry.constant_i | {} | UE5_save_state, respec_resolver, build_space_sweep (reachability classing), loadout_ui | T1_Ability_Tree §5I.1; §5B.1; §5B.2; T1_Integrity_Paths §8.11.6; docs/COMBAT_PROGRAM_ADDENDUM.md §§9-10 | 1.4.0 | ONE ledger shape for the ruled dual respec — the §5B.1 Mastery Point respec (sited at trade compounds with reagent, multi-day ritual and faction cost) and the §5B.2 Device Bonding respec — plus the DEFERRED bonus respec, so no second allocation model is minted. refundable DEFAULT false encodes §8.11 | {} | |
| WS_045 | loadout_set_state | object | per-owner loadout-set object with owner_kind (player | companion | familiar), owner_ref, set_id (FK T0_Loadout_Set_Definition.set_id), gear_instance_refs[] (FK WS_046.instance_id), ability_selection_refs[] (FK T0_Ability_Tree_Registry.ability_id), is_active (bool). DERIVED, NOT STORED: bonus_pick_re | {} | build_loadout_ui (W10 book screens), vril_site_interaction (HumanityVrilRechargeZone), departure_return_transaction, build_space_sweeps | T1_Combat_System_Spec §14; T1_Integrity_Paths_Worldstates_Master §8.11.6; docs/COMBAT_PROGRAM_ADDENDUM.md §9 | 1.4.0 | §§7-12 schema mint (Family B). KEYED-REPLACE object -- no `+` prefix, so this row needs no CG-25 append-legal-set edit. The loadout-set CEILING is the ROW COUNT of T0_Loadout_Set_Definition, never a number restated here; that table is the SOLE owner of set canon (unlock class, gates, venue class, an | {} | |
| WS_046 | item_instance_ledger | object | per-item-instance ledger object with instance_id (II_dddddd, runtime-minted), base_type_ref (FK T0_Weapon_Registry.weapon_id | T0_Equipment_Registry.equip_id), base_type_kind (weapon | equipment | consumable), rarity_class (token FK T0_Rarity_Grade.rarity_token at axis=item_grade), owner_kind (playe | {} | inventory_item_rift_runtime (unlocked Ch 15), loadout_set_resolver, departure_return_transaction, reroll_transaction, save_persistence | T1_Combat_System_Spec §13; T1_Integrity_Paths_Worldstates_Master §8.11.6; docs/COMBAT_PROGRAM_ADDENDUM.md §8 | 1.4.0 | §§7-12 schema mint (Family B). APPEND/ACCUMULATE by nature: WS_046 REQUIRES the CG-25 `+`-prefix legal-set edit in harness/check_ws_value_form.py APPEND_LEGAL_IDS (the live constant holds TWELVE ids per D-CG25-APPEND-SET; the landing edit is 12 -> 14 with Family A's WS_044) -- a RULED-LIST edit, fla | {} | |
| WS_047 | serpent_reverence_marks | integer | 0 to N, monotonic - a mark is INCURRED and is never spent, refunded or decayed; 1 is the only value reachable in Ch 2 (the Kelimutu Guardian is the single writer there) | 0 | UE5_save_state, boss_reward_resolver (BE_0002_S1 fought route), thread_state_resolver (Thread 2 The Serpent), NPC_recognition_system, dialogue_resolver | docs/spine/CH_02.md # Beat graph CH02_B03; T0_Boss_Encounter_Registry @ BE_0002_S1 win_reward; T0_Thread_Registry @ T02 The Serpent | 1.5.0 | MINTED 2026-08-05 answering the game-repo handback TODO_CANON 15 item 1, where the engine carries GetReverenceMarksIncurred() and telemeters ws_key=NO_WS_KEY_FOR_SERPENT_REVERENCE_TRACK because canon named the consequence and never named the key. THE TRACK IS CANON AND IS QUOTED RATHER THAN PARAPHRA | {} | |
| WS_048 | liang_bua_deep_layer_pressure | integer | 0 to 2 at Ch 2, monotonic - one mark per writer and both writers are reachable in a single playthrough; read on the next descent into the deep layers | 0 | UE5_save_state, encounter_spawn_resolver (the Liang Bua deep-layer descent), boss_reward_resolver (BE_0002_S2 death_reward), ambient_threat_resolver | docs/spine/CH_02.md # Beat graph CH02_B05; docs/spine/CH_02.md # Boss structure; T0_Boss_Encounter_Registry @ BE_0002_S2 death_reward | 1.5.0 | MINTED 2026-08-05 answering the game-repo handback TODO_CANON 15 item 2, where two rows write the same consequence in prose, the engine counts it as StalkersPutDown and telemeters NO_WS_KEY_FOR_DEEP_LAYER_PRESSURE. ONE TRACK, NOT TWO, AND THE RULING IS EVIDENCED RATHER THAN CONVENIENT: the handback | {} |